# 给你一个数组 events，其中 events[i] = [startDayi, endDayi] ，表示会议 i 开始于 startDayi ，结束于 endDayi 。
# 你可以在满足 startDayi <= d <= endDayi 中的任意一天 d 参加会议 i 。注意，一天只能参加一个会议。
# 请你返回你可以参加的 最大 会议数目

from typing import List
class Solution:
    def maxEvents(self, events: List[List[int]]) -> int:
        events.sort()
        s = set()
        for i in events:
            start = i[0]
            end = i[1]+1
            for i in range(start, end):
                s.add(i)
        print(s)
        v = 0
        for i in events:
            for j in s:
                if j in i:
                    s.remove(j)
                    v += 1
                    break
        return v




def test_maxEvents():
    assert Solution().maxEvents([[1,2],[2,3],[3,4],[1,2]]) == 4
    assert Solution().maxEvents([[1,100000]]) == 1
    assert Solution().maxEvents([[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7]]) == 7
    assert Solution().maxEvents([[1,2],[1,2],[3,3],[1,5],[1,5]]) == 5
        

if __name__ == "__main__":
    print(Solution().maxEvents([[1,2],[2,3],[3,4],[1,2]]))
